﻿using Authority.Model;
using Common.Library;
using System;
using System.Collections.Generic;
using System.Text;
using Tool.Model;

namespace Authority.Logic
{
    public interface ISysRoleService
    {
        ///// <summary>
        ///// 获取所有角色信息
        ///// </summary>
        ///// <returns></returns>
        //ResultJsonInfo<List<SysRoleEntity>> LoadAllListInfo();

        /// <summary>
        /// 获取角色列表信息
        /// </summary>
        /// <param name="parametersInfo"></param>
        /// <returns></returns>
        ResultJsonInfo<List<SysRoleEntity>> LoadListInfo(string sName, RoleType roleType);

        /// <summary>
        /// 获取所有的可操作角色信息
        /// </summary>
        /// <returns></returns>
        ResultJsonInfo<List<SelectListInfo>> LoadSysRoleAllList();

        /// <summary>
        /// 新增根节点信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> AddRoot(RoleRootRequest inputInfo, RoleType roleType);

        /// <summary>
        /// 新增子节点信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> AddChild(RoleChildRequest inputInfo, RoleType roleType);

        /// <summary>
        /// 修改信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> Modify(RoleModifyRequest inputInfo);

        /// <summary>
        /// 删除信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> Remove(List<string> inputInfo);

        /// <summary>
        /// 根据角色code和菜单code获取可操作按钮
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<List<RoleMenuButtonsListResponse>> LoadMenuButtonListByRoleMenuCode(RoleMenuButtonQueryRequest inputInfo);

        /// <summary>
        ///  更改角色-菜单按钮关系表信息（给角色授按钮权限）
        /// </summary>
        /// <param name="inputInfo"></param>
        /// <returns></returns>
        ResultJsonInfo<int> ModifyRoleMenuButtonInfo(RoleMenuButtonModifyRequest inputInfo);

        /// <summary>
        /// 给角色授菜单权限
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> ModifyRoleMenuInfo(RoleMenuModifyRequest inputInfo);

    }
}
